#include "Servidor.h"
#include "ManejadorDeSalas.h"
#include "ManejadorDeClientes.h"
#include "VectorSala.h"
#define PUERTO_DE_ESCUCHA_DEFAULT 9090

void Servidor::correr(int argc, char* argv[])
{
	unsigned puerto;
	obtenerPuerto(argc, argv, puerto);

	VectorSala vecSalas;

	ManejadorDeClientes manejadorDeClientes(vecSalas, puerto);
	manejadorDeClientes.start();

	ManejadorDeSalas manejadorDeSalas(vecSalas);
	manejadorDeSalas.start();

	char salir = ' ';
	std::cout << "Ingrese q para salir" << std::endl;
	while(salir != 'q'){
		std::cin >> salir;
	}

	manejadorDeClientes.matar();//Deja de aceptar clientes
	manejadorDeSalas.matar();//Corta la conexion de cada sala con sus jugadores

	//Espera a terminen de correr
	manejadorDeClientes.join();
	manejadorDeSalas.join();
}

void Servidor::obtenerPuerto(int argc, char* argv[], unsigned& puerto)
{
	if(argc == 2){
		std::stringstream s;
		s << argv[1];
		s >> puerto;
	}else{
		puerto = PUERTO_DE_ESCUCHA_DEFAULT;
	}
}

